WARNING:
JavaScript is turned OFF. None of the links on this concept map will
work until it is reactivated.
If you need help turning JavaScript On, click here.
此概念图以 IHMC CmapTools 创建, 内含信息有关于: 第2章 物件導向技術導論, 2-2 抽象資料型態 包括 2-2 抽象資料型態-說明, 2-2-1 程序或函數抽象化-步驟一 是 從房屋繪圖工作可以粗分為三個小工作,如 下所示: 繪出屋頂和外框。 繪出窗戶。 繪出門。 依據上述工作分割,可以建立各分割小工作 之間的模組架構,如下圖所示:, 2-2-1 程序或函數抽象化-步驟二 是 將第一個小工作【繪出屋頂和外框】(Draw Outline)再次進行分割成二個小工作,如下 所示: 繪出屋頂。 繪出房屋的外框。, 使用銀行轉帳來說明如何使用循序圖呈現物件 集合協同工作來完成轉帳任務。假設:從銀行 帳戶A轉帳500元至帳戶B,首先使用由下而下 分析方法找出轉帳任務依序呼叫的程序與函數 ,如下所示: getBalance(A); withdraw(A, 500); deposit(B, 500); 上述程式碼列出轉帳的呼叫順序,首先呼叫 getBalance()函數取得參數A帳戶的餘額1000, 因為超過500元,可以執行轉帳,所以呼叫 withdraw()函數從帳戶A提款500元,然後呼叫 deposit()函數將500元存入帳戶B。 包括 2-3-2 識別出物件-銀行轉帳問題(步驟3), 2-3 從結構化進入物件導向程式設計 包括 2-3-2 識別出物件-說明, 2-2-1 程序或函數抽象化-範例 是 例如:目前有一個工作是繪出房屋的圖形, 房屋圖形的繪圖工作不是一筆畫就可以完成 ,所以,我們可以分割成多個小工作來分別 處理,以由上而下的設計方法來了解整個繪 圖工作的問題。, 2-2 抽象資料型態-說明 包括 2-2-4 抽象資料型態與物件導向-說明, 在書附光碟提供js-sequence-diagram循序圖工 具,可以輕鬆將輸入的文字訊息轉換成UML 循序圖,這是使用JavaScript語言開發,只需 瀏覽器就可執行的客戶端程式,請啟動瀏覽 器執行js-sequence-diagrams.html(建議使用 Chrome),可以看到執行畫面,如下圖所示 : 包括 2-3-3 建立類別-建立類別, 2-4 物件導向技術的三大觀念 包括 2-4-2 訊息觀念-訊息傳回值 (循序圖), 2-3-2 識別出物件-說明 是 物件導向程式設計的精神是找出解決程式問 題的可重複使用物件,在分配物件負責的工 作後,通力合作來完成程式任務。結構化程 式設計強調功能分割,其目的是在找出完成 程式任務所需的程序與函數。, 在書附光碟提供js-sequence-diagram循序圖工 具,可以輕鬆將輸入的文字訊息轉換成UML 循序圖,這是使用JavaScript語言開發,只需 瀏覽器就可執行的客戶端程式,請啟動瀏覽 器執行js-sequence-diagrams.html(建議使用 Chrome),可以看到執行畫面,如下圖所示 : 包括 2-3-2 識別出物件- js-sequence-diagram循序圖工具(訊息語法2), 2-3 從結構化進入物件導向程式設計 包括 2-3-1 認識物件-說明, 2-3 從結構化進入物件導向程式設計 是 物件導向技術源於1960年代的Simula程式語 言,它是Simulation Language的簡稱,一種模 擬語言,希望使用電腦程式來模擬真實世界 的各種處理過程。學習物件導向程式設計的 其第一步,就是了解什麼是物件。, 2-4-2 訊息觀念-名稱再用:多型 是 「多型」(Polymorphism)屬於另一種名稱再 用,針對同一個訊息,不同的物件擁有不同的 反應,也就是同一個名稱擁有不同的操作。因 為在人類的思維中,對於同一種工作,就算對 象不同,也會使用相同名稱的操作,如下圖所 示:, 使用銀行轉帳來說明如何使用循序圖呈現物件 集合協同工作來完成轉帳任務。假設:從銀行 帳戶A轉帳500元至帳戶B,首先使用由下而下 分析方法找出轉帳任務依序呼叫的程序與函數 ,如下所示: getBalance(A); withdraw(A, 500); deposit(B, 500); 上述程式碼列出轉帳的呼叫順序,首先呼叫 getBalance()函數取得參數A帳戶的餘額1000, 因為超過500元,可以執行轉帳,所以呼叫 withdraw()函數從帳戶A提款500元,然後呼叫 deposit()函數將500元存入帳戶B。 包括 2-3-2 識別出物件-銀行轉帳問題(步驟1), 物件導向技術的物件是對應到現實生活的實體 或事件,擁有三種特性,如下所示: 狀態(State):物件所有「屬性」(Attributes )目前的狀態值,屬性是儲存物件的狀態,可 以簡單到只是一個布林值變數,也可能是另一 個物件。例如:車子的車型、排氣量、色彩和 自排或手排等屬性,以程式來說,也就是資料 部分的變數。 行為(Behavior):行為是物件可見部分提供的 服務,也就是塑模所抽象化的操作,可以做什 麼事?程式語言是使用程序或函數來實作行為 ,稱為方法,例如:車子可以發動、停車、加 速和換擋等。 識別字(Identity):每一個物件都擁有獨一無 二的識別字來識別它是不同的物件。例如:使 用物件參考(Reference)作為物件的識別字, 即物件實際儲存的記憶體位址。 例如 2-4-1 物件觀念-物件的範例, 2-4-1 物件觀念-物件簡介 是 物件(Object)是物件導向技術的關鍵,以程式 角度來說,它是電腦用來模擬現實生活的東西 或事件,也是組成應用程式的元素。, 2-4-1 物件觀念-物件簡介 是 物件是資料與相關處理資料的程序和函數結合 在一起的組合體。資料是變數,程序和函數稱 為方法(Methods),如下圖所示:, 2-4 物件導向技術的三大觀念 包括 2-4-2 訊息觀念-訊息傳回值, 2-4-2 訊息觀念-循序操作:委派 (範例) 是 Teacher物件是「委派」(Delegation,或稱為委 任)給StudentStatus物件來查詢成績資料,最後 ,Teacher物件在取得成績計算平均後,送出回 應訊息的平均成績:70,其循序圖如下圖所示 :